xend: Make /var/lib/xen if not already present.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 3 Mar 2009 11:37:31 +0000 (11:37 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 3 Mar 2009 11:37:31 +0000 (11:37 +0000)
Signed-off-by: Christoph Egger <christoph.egger@amd.com>
tools/python/xen/xend/XendCheckpoint.py

index ed16c345d244b98dc343b9b63edb5b4367691bfe..a333b581e6225c08e2231bca4fc50bc7149d373e 100644 (file)
@@ -66,6 +66,13 @@ def insert_after(list, pred, value):
 
 
 def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1):
+    try:
+        if not os.path.isdir("/var/lib/xen"):
+            os.makedirs("/var/lib/xen")
+    except Exception, exn:
+        log.exception("Can't create directory '/var/lib/xen'")
+        raise XendError("Can't create directory '/var/lib/xen'")
+
     write_exact(fd, SIGNATURE, "could not write guest state file: signature")
 
     sxprep = dominfo.sxpr()
@@ -166,6 +173,13 @@ def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1):
 
 
 def restore(xd, fd, dominfo = None, paused = False, relocating = False):
+    try:
+        if not os.path.isdir("/var/lib/xen"):
+            os.makedirs("/var/lib/xen")
+    except Exception, exn:
+        log.exception("Can't create directory '/var/lib/xen'")
+        raise XendError("Can't create directory '/var/lib/xen'")
+
     signature = read_exact(fd, len(SIGNATURE),
         "not a valid guest state file: signature read")
     if signature != SIGNATURE: